package tool

import (
	"fmt"
	"regexp"
)

// ValidateEmail 验证邮箱格式
func ValidateEmail(email string) error {
	pattern := `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`
	matched, err := regexp.MatchString(pattern, email)
	if err != nil {
		return fmt.Errorf("邮箱验证失败: %v", err)
	}
	if !matched {
		return fmt.Errorf("邮箱格式不正确")
	}
	return nil
}

// ValidatePassword 验证密码规则
func ValidatePassword(password string) error {
	if len(password) < 6 || len(password) > 18 {
		return fmt.Errorf("密码长度必须在6-18位之间")
	}
	// 可以添加更多密码规则，比如必须包含大小写字母、数字等
	return nil
}

// ValidatePassword2 验证密码规则
func ValidatePassword2(password string) error {
	if len(password) < 6 || len(password) > 18 {
		return fmt.Errorf("密码长度必须在6-18位之间")
	}

	// 检查是否包含至少一个大写字母
	if !regexp.MustCompile(`[A-Z]`).MatchString(password) {
		return fmt.Errorf("密码必须包含至少一个大写字母")
	}

	// 检查是否包含至少一个小写字母
	if !regexp.MustCompile(`[a-z]`).MatchString(password) {
		return fmt.Errorf("密码必须包含至少一个小写字母")
	}

	// 检查是否包含至少一个数字
	if !regexp.MustCompile(`[0-9]`).MatchString(password) {
		return fmt.Errorf("密码必须包含至少一个数字")
	}

	return nil
}
